#ifndef SQLITEDBWRAPPER_H_INCLUDED
#define SQLITEDBWRAPPER_H_INCLUDED

#include <iostream>
#include <list>
#include "sqlite3.h"
#include "RouteTypes.h"

//SqLiteDbWrapper.h - A class that abstracts the SQLite API from client classes and provides a simple
//interface for extracting route data without having to use raw SQL statements.

using namespace std;

class SqLiteDbWrapper
{
    private:
        sqlite3* db;
        sqlite3_stmt* statement;

        list<Path> populateRouteData(char* routeIDString);

    public:
        SqLiteDbWrapper(const char* path);
        ~SqLiteDbWrapper();

        list<Path> LoadRoute(int routeID);
        Link GetLink(int linkID);
        Node GetNode(int nodeID);

};

#endif
